import JDBCUtiles.Utils;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.util.Scanner;

/**
 * @Author 不知名网友鑫
 * @Date 2022/6/26
 * 练习一：从控制台向数据库的表customers中插入一条数据。
 * 使用了ps.excuteUpdate():返回操作改变的行数
 **/
public class Exercise1 {
    public static void main(String[] args) throws Exception {
        Scanner in = new Scanner(System.in);
        Utils.getConnection();
        String sql = in.nextLine();
        int update = Exercise1.update(sql);
        if(update>0) {
            System.out.println("添加成功");
        }else{
            System.out.println("添加失败");
        }
    }

    public static int update(String sql, Object ...obj){
            PreparedStatement ps = null;
            Connection connection = null;
            try {
                //1. 获取数据库连接
                connection =Utils.getConnection();
                //2. 预编译sql语句，返回PreparedStatement
                ps = connection.prepareStatement(sql);
                //3. 填充占位符
                for(int i=0;i<obj.length;i++){
                    ps.setObject(i+1,obj[i]);
                }
                //4. 执行操作
                //ps.execute():
                //如果执行的是增删改操作，返回false。
                //如果执行的是查询操作，返回true。
                //ps.excuteUpdate():返回操作改变的行数。
                return ps.executeUpdate();
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                //5. 关闭资源
                Utils.closeResource(connection,ps);
            }
            return 0;
    }
}
